package com.investmenttechnologyservices.model;

public enum InstrumentType {
	CASH		("Cash Held",		"CashInstrument",	false,	true,	true,	false, 	true),
	CASH_UNST	("Unsettled Cash", 	"CashInstrument",	false,	true,	true,	false,	true),
	CASH_MRGN	("Margined Cash",	"CashInstrument",	false,	true,	true, 	false, 	true),
	CASH_FEES	("Accrued Fees", 	"CashInstrument",	false,	true,	true,	false,	true),
	CASH_ACC	("Accrued Value",	"CashInstrument",	false,	true,	true, 	false, 	true),
	EQUITY		("Equity",			"Instrument",		true,	false,	true,	false, 	true),
	OPTIONEQUITY("Equity Option",	"OptionEquity",		true,	false,	true,	true,	true),
	INDEXFUTURE	("Index Future",	"Future",			true, 	false,	false, 	true,	true),
	INDEX		("Index",			"Index",			true,	false,	false,	true,	true);
	
	
	String name;
	String className;
	Boolean isListed;
	Boolean isCash;
	Boolean cashTraded;
	Boolean underlyingExposure;
	Boolean holdable;
	
	InstrumentType(String name, String className, Boolean isListed, Boolean isCash, 
			Boolean cashTraded, Boolean underlyingExposure, Boolean holdable) {
		this.name 				= name;
		this.className			= className;
		this.isListed 			= isListed;
		this.isCash				= isCash;
		this.cashTraded 		= cashTraded;
		this.underlyingExposure = underlyingExposure;
		this.holdable			= holdable;
	}
	
	public String getClassName() {return className;}
	public Boolean getIsListed() {return isListed;}
	public Boolean getIsCash() {return isCash;}
	public Boolean getCashTraded() {return cashTraded;}
	public Boolean getUnderlyingExposure() {return underlyingExposure;}
	public Boolean getHoldable() {return holdable;}
}
